from flask.json import JSONEncoder as _JSONEncoder
from flask import Flask as _Flask


class JSONEncoder(_JSONEncoder):
    def default(self, o):  # 递归调用，只要遇到无法序列化的对象都会调用该函数，在keys中遇到无法序列化的会再次执行
        # 遇到无法序列化的对象时，记得来这里添加。
        if hasattr(o, 'keys') and hasattr(o, '__getitem__'):
            return dict(o)


class Flask(_Flask):
    json_encoder = JSONEncoder